home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Disk User Volume 3 #6
/
Commodore_Disk_User_Vol.3_6_1990_-.d64
/
hi-lite bars
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
6KB
|
248 lines
10 rem ******************************
20 rem * *
30 rem * hilite bar menu maker *
40 rem * by *
50 rem * bones *
60 rem * *
70 rem ******************************
80 :
90 :
100 rem ******************************
110 rem * menu lists *
120 rem ******************************
130 :
140 :
150 rem ****----menu one----****
160 :
170 :
180 mi$(0)= " [209] goto second menu [209] "
190 mi$(1)= " [209] menu option two [209] "
200 mi$(2)= " [209] menu option three [209] "
210 mi$(3)= " [209] menu option four [209] "
220 mi$(4)= " [209] end demo [209] "
224 :
225 rem ****----menu two----****
226 :
227 :
230 mi$(5)= " [209] goto third menu [209] "
240 mi$(6)= " [209] another option [209] "
250 mi$(7)= " [209] opting back to one [209] "
254 :
255 rem ****----menu three----****
256 :
257 :
260 mi$(8)=" [209] more option adventures [209] "
270 mi$(9)=" [209] almost the last option [209] "
280 mi$(10)=" [209] getting back to two [209] "
290 :
295 :
300 rem ****************************
310 rem ** more useful strings **
320 rem ****************************
325 :
330 :
340 nul$=" "
350 yn$=" << are you sure [y/n] ? >>"
360 sk$=" << strike any key or fire >>"
390 :
395 :
400 rem ****************************
410 rem ** main loop and exit **
420 rem ****************************
425 :
430 bo=53281:pokebo,6:ba=bo-1:pokeba,6:print"[147][154]"
436 :
440 gosub 60500:rem print bottom panel
445 :
450 gosub 1000:rem first menu
455 :
460 ifqthen480:rem quit program
465 :
470 goto440:rem back to start
475 :
480 print"[147]"yn$
485 :
490 gosub60320:rem get keyin
495 :
500 ifch=89then530rem yes - quit
505 :
510 ifch=78then440:rem no - don't quit
515 :
520 goto490:rem no keypress
525 :
530 sys64738:rem reset computer
535 :
990 :
991 rem *****************************
992 rem ** menu actions **
993 rem *****************************
994 :
995 :
997 rem ****----menu #1----****
998 :
999 :
1000 m1=4:rem maximum menu entry
1010 m2=0:rem minimum menu entry
1020 gosub 60000:rem menu creator
1030 if m=5 then q=1:return:rem quit
1040 on m gosub 1500,3000,4000,4500
1050 gosub 60500:goto1000:rem print panel and menu loop
1494 :
1495 :
1497 rem ****----menu #2----****
1498 :
1499 :
1500 gosub60500:m1=7:rem maximum menu entry
1510 m2=5:rem minimum menu entry
1520 gosub 60000:rem menu creator
1530 if m=8 then return:rem back to 1
1540 on m-m2 gosub 2000,5000
1550 goto1500:rem print panel and menu loop
1994 :
1995 :
1997 rem ****----menu #3----****
1998 :
1999 :
2000 gosub60500:m1=10:rem maximum menu entry
2010 m2=8:rem minimum menu entry
2020 gosub 60000:rem menu creator
2030 if m=11 then return:rem back to 2
2040 on m-m2 gosub 6000,7000
2050 goto2000:rem print panel and menu loop
2990 :
2991 :
2992 rem ****************************
2993 rem ** subroutines called **
2994 rem ** menu's **
2995 rem ****************************
3000 :
3010 :
3020 pokebo,0:pokeba,0:print"[147][156] this is option two!!!"
3030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
4000 :
4010 :
4020 pokebo,2:pokeba,2:print"[147][150] this is option three!!"
4030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
4500 :
4510 :
4520 pokebo,10:pokeba,10:print"[147][149] this is option four!!"
4530 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
5000 :
5010 :
5020 pokebo,14:pokeba,14:print"[147] this is another option !!"
5030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
6000 :
6010 :
6020 pokebo,1:pokeba,1:print"[147][144] more optional adventures!!"
6030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
7000 :
7010 :
7020 pokebo,5:pokeba,5:print"[147][153] almost the last option!!"
7030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
59985 :
59986 :
59990 rem *****************************
59991 rem * *
59992 rem * menu & hilite bar *
59993 rem * print *
59994 rem * *
59995 rem * delete all remarks and *
59996 rem * crunch down commands *
59997 rem * *
59998 rem *****************************
59999 :
60000 ln=214:rem curser physical line number
60005 :
60010 cb=198:rem no. characters in buffer
60015 :
60020 mm=m1:rem transfer maximum menu items
60025 :
60030 mn=m2:rem transfer minimum menu items
60035 :
60040 print"":rem home curser (x=0:y=0)
60045 :
60050 for c = m2 to m1:rem setting up menu parameters
60055 :
60060 print"";mi$(c):rem print menu item
60065 :
60070 next:rem do loop until all menu items are printed
60075 :
60080 pokeln,0:rem clear keyboard buffer
60085 :
60090 rb=mn:cl=mn:rem setting bar/clear to minimum menu item
60095 :
60100 gosub 60260:rem do reverse bar print
60105 :
60110 for re = 0 to 1 step 0:rem settup first loop
60115 :
60120 gosub 60320:rem get joystick/keyboard input
60125 :
60130 c1=cl:r1=rb:rem settup test values
60135 :
60140 for y = 0 to 1 step 0:rem settup second loop
60145 :
60150 rem testing joystick/keyboard input
60155 :
60160 ifch=17thenrb=rb+1:ifrb=mm+1thenrb=mn:rem test if beyond last menu item
60165 :
60170 ifch=145thenrb=rb-1:ifrb=mn-1thenrb=mm:rem test if before first menu item
60175 :
60180 ifch=13thenre=1:rem test if fire/return is selected
60185 :
60190 if mi$<>nul$theny=1:rem test if menu item is empty string
60195 :
60200 next y:rem do to end of inner loop
60205 :
60210 if (c1<>cl) or (r1<> rb) then gosub 60240:rem run test for reverse/clear
60215 :
60220 next re:rem do to end of outer loop
60225 :
60230 goto 60290:rem assign value of menu line
60235 :
60240 poke ln,r1-mn:rem move cursor to correct position
60245 :
60250 print"";mi$(r1):rem print clear menu item
60255 :
60260 pokeln,rb-mn:rem move cursor to correct position
60265 :
60270 print"";mi$(rb):rem print reverse menu item
60275 :
60280 goto60300
60285 :
60290 m=rb+1:rem assing item number to variable m
60295 :
60300 return
60305 :
60306 rem **************************
60310 rem *** get inkey/joystick ***
60311 rem **************************
60315 :
60320 ch=0:geta$:ifa$<>""thench=asc(a$):return:rem if a key is pressed - get it
60325 :
60330 j=peek(56320):rem joystick port2
60335 :
60340 ifj=126thench=145:return:rem up
60345 :
60350 ifj=125thench=17:return:rem down
60355 :
60360 ifj=111thench=13:return:rem fire
60365 :
60370 goto60320:rem nothing, so keep checking!
60494 :
60495 :
60496 rem *****************
60497 rem ** cursor plot **
60498 rem *****************
60499 :
60500 print"[147]":poke781,20:poke782,0:sys65520
60501 :
60502 :
60503 rem ******************
60504 rem ** bottom panel **
60505 rem ******************
60510 print"[153] [213][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][201]"
60520 print" [221][169][223][146] [221]"
60530 print" <cursor/joystick>-------<return/fire>"
60540 print" [223][169][154]"
60550 return